1. Field of the Invention
This invention relates to computer networks and, more particularly, to a topology and routing model for a peer-to-peer network.
2. Description of the Related Art
Distributed computing has become increasingly popular as computer networks have proliferated. A wide variety of network protocols and network routing techniques are in use today. One protocol in widespread use is the Transmission Control Protocol/Internet Protocol (TCP/IP), used for Internet communication. TCP/IP is based on a model that assumes a large number of independent networks are connected together by gateways called routers. The collection of interconnected IP networks is uniformly addressed by an IP-address. The routing used to provide network independent addressing is transparent to client and target software. All a client needs to know to send a message to a target is that target's IP address. TCP enforces an ordered delivery of messages. The concept of a message response with data is not directly supported by TCP, but instead is provided by the application layer.
Another network protocol in widespread use is the User Datagram Protocol (UDP). No reliable connections are established in the UDP protocol, and thus no guarantees of message delivery are made. UDP also does not enforce an ordered delivery of messages. Like the TCP protocol, the concept of a message response is not directly supported by UDP, but instead is provided by the application layer.
One type of networking is referred to as peer-to-peer or P2P networking. Peer-to-peer networking has seen rapid growth. As used herein, a peer-to-peer network is generally used to describe a decentralized network of peer nodes where each node may have similar capabilities and/or responsibilities. Participating peer nodes in a P2P network may communicate directly with each other. Work may be done and information may be shared through interaction between the peers. In addition, in a P2P network, a given peer node may be equally capable of serving as either a client or a server for another peer node.
A peer-to-peer network may be created to fulfill some specific need, or it may be created as a general-purpose network. Some P2P networks are created to deliver one type of service and thus typically run one application. For example, Napster was created to enable users to share music files. Other P2P networks are intended as general purpose networks which may support a large variety of applications. Any of various kinds of distributed applications may execute on a P2P network. Exemplary peer-to-peer applications include file sharing, messaging applications, distributed information storage, distributed processing, etc.